//该文件用于创建Vuex中最核心的store
//引入Vue
import Vue from 'vue' 
//引入Vuex
import Vuex from 'vuex' 
//使用Vuex
Vue.use(Vuex)   
//准备actions，用于响应组件中的动作
const actions = {
    //增加求和
   /*  increment(context, value) {
        console.log('actions increment 执行了');
        context.commit('increment', value)
    },
    //减少求和
    decrement(context, value) {
        console.log('actions decrement 执行了');
        context.commit('decrement', value)
    }, */
    incrementOdd(context, value) {
        console.log('actions incrementOdd 执行了');
        if(context.state.sum % 2) {
            context.commit('increment', value)
        }
    },
    incrementWait(context, value) {
        console.log('actions incrementWait 执行了');
        setTimeout(() => {
            context.commit('increment', value)
        }, 1000);
    },
    
}
//准备mutations，用于操作数据(state)
const mutations = {
    //增加求和
    increment(state, value) {
        console.log('mutations increment 执行了');
        state.sum += value;
    },
    //减少求和
    decrement(state, value) {
        console.log('mutations decrement 执行了');
        state.sum -= value;
    }
}
//准备getters，用于将state中的数据进行加工
const getters = {
    bigSum(state) {
        return state.sum * 10;
    }
}
//准备state，用于存储数据
const state = {
    //当前求和
    sum: 0,
    school:'尚硅谷',
    subject:'前端'
}

//创建store
const store = new Vuex.Store({
  actions,
  mutations,    
  state,
  getters
})

//暴漏store
export default store    